home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 30 / PC Gamer IT CD 30 1-2.iso / MOTS / GAMEDATA / RESOURCE / JKMRES.GOO / cog_actor_i2_pnch.cog < prev    next >
Text File  |  1998-02-25  |  3KB  |  115 lines

  1. # Jedi Knight MOTHS Cog Script
  2. #
  3. # ACTOR_I2.COG
  4. #
  5. #
  6. # Actor COG for Commandos with Repeaters
  7. # Punch when their weapons get pulled
  8. # Creates powerup upon death
  9. #
  10. # 7/28/97 [CR] Doubled saber damage for single player gameplay reasons
  11. #
  12. # [SRS]
  13. #
  14. # (C) 1997 LucasArts Entertainment Co. All Rights Reserved
  15. #
  16. # ========================================================================================
  17.  
  18. symbols
  19.  
  20. message          killed
  21. message          skill
  22. message          damaged
  23.  
  24. template         powerup=+DRepeaterGun   local
  25. thing            newThing                local
  26. int              bin                     local
  27. int              senderref=-1            local
  28. ai               flee_ai=noweapon.ai     local
  29. ai               punch_ai=st_punch.ai    local
  30. int              damage                  local
  31.  
  32. vector        currentpos                                local
  33.  
  34. end
  35.  
  36. # ========================================================================================
  37.  
  38. code
  39.  
  40. damaged:
  41.    damage = GetParam(0);
  42.    if(GetParam(1) == 16)
  43.    {
  44.       damage = (damage * 2.0);
  45.    }
  46.    ReturnEx(damage);
  47.    return;
  48.  
  49. # ........................................................................................
  50.  
  51. killed:
  52.    victim = GetSenderRef();
  53.    // If he hasn't lost his weapon already somehow.
  54.    if (GetActorWeapon(victim, 1) != -1)
  55.    {
  56.       AmputateJoint(victim, 3);
  57.       newThing = CreateThing(powerup, victim);
  58.       SetLifeleft(newThing, 200.0);
  59.    }
  60.    return;
  61.  
  62. # ........................................................................................
  63.  
  64. skill:
  65.    bin = GetParam(0);
  66.    if (bin == 24)       // Force Pull
  67.    {
  68.       // he's a fighter, not a fleer... -srs
  69.  
  70.       senderref = GetSenderRef();
  71.             // If he hasn't been pulled yet...
  72.         if (GetActorWeapon (senderref, 1) != -1)
  73.         {
  74.             SetActorWeapon(senderref, 1, -1);
  75.  
  76.             newThing = CreateThing(powerup, GetSenderRef());
  77.             SetLifeleft(newThing, 30.0);
  78.  
  79.             AISetClass (senderref, punch_ai);
  80.             AISetMode(senderref, 0x4);
  81.  
  82.             ReturnEx(newThing);
  83.         }
  84.         else
  85.         {
  86.                 // Give the actor a shove towards the player.
  87.             currentpos = VectorSub(GetThingPos(GetLocalPlayerThing(), senderref));
  88.             currentpos = VectorScale(VectorNorm(currentPos), 250);
  89.             ApplyForce(senderref, currentpos);
  90.  
  91.             ReturnEx(-1);
  92.         }
  93.  
  94.       //AIFlee(senderref, GetLocalPlayerThing());
  95.  
  96.       Return;
  97.    }
  98.    else
  99.    if (bin == 31)       // Force Grip
  100.    {
  101.       ReturnEx(10);     // return base damage that is taken by this actor.
  102.       return;
  103.    }
  104.    else
  105.    if (bin == 34)       // Deadly Sight
  106.    {
  107.       ReturnEx(5);      // return base damage that is taken by this actor.
  108.       return;
  109.    }
  110.    ReturnEx(-1);
  111.    return;
  112.  
  113. end
  114.  
  115.